package com.artezio.buyndrive.service;

import java.util.List;

public interface Service<T extends Object> {
    /**
     * Загружает сущность по заданному id и инициализирует указанные поля.
     *
     * @param id         - идентификатор сущности.
     * @param properties - поля для инициализации
     * @return сущность
     */
    public T findById(Long id/*, String... properties*/);

    public List<T> findByIds(List<Long> ids, String... properties);

    public Long add(T entity);

    public void delete(Long id);

    public void delete(T entity);
    
    public List<T> getAll();

    void saveOrUpdate(T entity);
}
